iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
自我挑戰組

Robot Framework 與 Websocket 協議測試系列 第 1

前言: 當自動化測試遇到遊戲協議

  • 分享至 

  • xImage
  •  

自動測試的重要性

身為小主管,每次在面試時,候選人總會表示想學習自動測試。原因無他:

  1. 聽起來足夠高大上,是個好像可以觸碰但又不會太難的目標。
  2. 手動測試相當繁瑣,且缺乏技術深度。
  3. 重複性工作最適合交給機器完成。
  4. 在快速迭代的時代,依靠手動進行回歸測試已不切實際。

因此對一般 QA 而言,自動測試是個目標,也是希望。

我其實是底層驅動程式開發出身,後來發現自己對整天沉浸在程式碼世界缺乏熱忱,所以職業生涯後半段改走技術支援路線。對曾經做過開發的我來說,自動測試簡直小菜一碟。曾有幸在類似 Cisco 的公司歷練過,了解正規測試能達到的水平及全自動化帶來的好處。因此,儘管有機會挑戰過產品及專案經理等職位,最終還是選擇在自動測試領域繼續深耕。

自動測試的發展與技能樹

隨著電腦科學不斷演進,自動測試也經歷了幾個世代的變化。

第一代是純命令列形式,代表工具有 Tcl/tk 或 Pytest 之類的。操作上對於技術要求較多,需要懂 CLI 指令
以下是取自 pytest 官網的範例結果

$ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-8.x.y, pluggy-1.x.y
rootdir: /home/sweet/project
collected 1 item

test_sample.py F                                                     [100%]

================================= FAILURES =================================
_______________________________ test_answer ________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_sample.py:6: AssertionError
========================= short test summary info ==========================
FAILED test_sample.py::test_answer - assert 4 == 5
============================ 1 failed in 0.12s =============================

第二代則整合了圖形界面和自動錄製功能,以 Selenium, Appium, Playwright 等 UI 測試工具為代表,這也符合網頁蓬勃發展的歷史背景。
例如,Selenium Chrome Plugin
Selenium Plugin

更上層的挑戰是如何管理眾多自動測試腳本和執行結果。這方面有許多解決方案,Robot Framework 就是其中之一。對於技術水準高的公司,若所有人都會寫程式,直接用 Python 編寫即可。但對於混合型團隊,例如部分手動、部分自動測試的情況,Robot Framework 較為適合,因為它可用表格形式撰寫測試項目,將複雜的實現邏輯隱藏在 Python Library 中,這點後面會深入說明。

補完少人談論的協議測試

另外談談協議這個領域。在遊戲業、即時通訊或交易所應用中,協議扮演極為重要的角色。與一般 Web 2.0 網頁純粹 RestfulAPI 形式不同,它需要更高頻且快速的互動。因此,通常採用 WebSockets 這類持久性連接通道作為基礎通訊協議。由於這是較小眾的領域,網路上相關教學資源相對較少。所以這次特地選擇這個主題,一來看到市場需求,二來符合我近期的工作內容。

給自己的紀錄

還有些更個人化的原因,我希望藉此整理近期的工作心得,作為自己的記錄。另一方面,也希望我的分享能給大家一些啟發。過去二十幾年的職涯中,我大多在小公司默默耕耘,因此在公開場合留下的記錄不多,除了之前在澳洲打工度假的那些流水帳外。所以想藉此機會回顧自己的工作歷程,整合經驗,算是對自己的一次盤點。

也是第一次挑戰鐵人賽項目,希望能成功完賽,作為自己五十歲的禮物。


系列文
Robot Framework 與 Websocket 協議測試1
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言